首先要知道, 服务器进程在退出前, 是有一定的信号的, 这个信号可以通过监听信号捕获到.
例如 process.on('SIGTERM', () => {})
或者 process.on('SIGINT', () => {})
信号, 但是此类信号比较多, 很难逐一研究捕获.
大部分情况下, 我们只是需要在退出进程的时候捕获信号, 我们可以使用 signal-exit
包, 比较全面的实现退出信号的捕获.
安装
1 | npm i -s signal-exit |
使用方法
1 | const onExit = require('signal-exit'); |
例子
参考: https://hackernoon.com/graceful-shutdown-in-nodejs-2f8f59d1c357
不使用 signal-exit
1 | process.on('SIGTERM', () => { |
使用 signal-exit
1 | onExit((code, signal) => { |